package main

import (
	"flag"
	"fmt"
	"time"
)

//当我们要开发一个脚本时，流程
//1.定义参数
//2.接收参数
//3.写逻辑代码
//4.执行以及测试
func main() {
	//定义参数，这里定义的是变量
	var (
		name string
		age int
		married bool
		deplay time.Duration
	)
	//使用flag定义参数，这里是将命令行参数绑定至变量上
	//参数1：绑定到哪个变量
	//参数2：参数名
	//参数3：默认值
	//参数4：用法备注
	flag.StringVar(&name, "name", "张三", "备注")
	flag.IntVar(&age, "age", 18, "年龄")
	flag.BoolVar(&married, "married", false, "婚否")
	flag.DurationVar(&deplay, "deplay", 0, "延迟的时间间隔")
	//绑定以及解析
	flag.Parse()
	//通过定义的变量去使用
	fmt.Println()
	fmt.Println(name, age, married, deplay)
	//返回命令行参数后的其他参数
	fmt.Println(flag.Args())
	//返回命令行参数后的其他参数个数
	fmt.Println(flag.NArg())
	//返回使用命令行参数个数
	fmt.Println(flag.NFlag())

}

